/* SET DIRECTORY */**************************************************************************************************************
**	Replication do-file for "Governmment Policies and the Emergence of an Ethnic Dimension in Party Systems"
**	Author: Maayan Mor
**	Purpose: Create "schuetzvereine.dta."  
**  This file is used to produce section I in the supplamentary materials
**************************************************************************************************************

clear all

/* SET DIRECTORY */

/*******************************************
Manage the 1849-1867 biographies dataset
******************************************/

** this table lists Prussian counties and their Prussian constituency ID
import excel "ZA8112_BRD.xls", sheet("Tabelle3") firstrow clear
rename dcounties_Haege LandStadtKreis
label var LandStadtKreis "counties Haege"
clonevar Ort=LandStadtKreis
label var Ort "counties Haege"

replace LandStadtKreis="Köln (L)" if LandStadtKreis=="Köln-Land"  
replace LandStadtKreis="Köln (S)" if LandStadtKreis=="Köln-Stadt"  
replace LandStadtKreis="Bekum" if LandStadtKreis=="Beckum"
replace LandStadtKreis="Sieg" if LandStadtKreis=="Siegkreis"
replace LandStadtKreis="Bergheim" if LandStadtKreis=="Bergheim (Erft)"

keep  Kuehne_ID LandStadtKreis Ort
drop if LandStadtKreis==""
destring Kuehne_ID, replace
save "counties cst_k id prussia", replace

import excel "ZA8112_NRW.xls", sheet("Tabelle1") firstrow clear
drop in 1/6

rename D GrJ
rename H LandStadtKreis
rename F Pr

keep GrJ LandStadtKreis Pr
drop in 1

** keep only clubs that were established between 1700-1865
replace GrJ="" if GrJ=="A" | GrJ=="E"
destring GrJ, replace
keep if GrJ<1872 & GrJ>=1700

replace LandStadtKreis="Aachen-Land" if LandStadtKreis=="Aachen (L)" 
replace LandStadtKreis="Aachen-Stadt" if LandStadtKreis=="Aachen (S)"
replace LandStadtKreis="Bonn" if LandStadtKreis=="Bonn (L)" | LandStadtKreis=="Bonn (S)"
replace LandStadtKreis="Bielefeld" if LandStadtKreis=="Bielefeld (L)" |  LandStadtKreis=="Bielefeld (S)"
replace LandStadtKreis="Bochum" if LandStadtKreis=="Bochum (S)" | LandStadtKreis=="Bochum (L)" 
replace LandStadtKreis="Dortmund" if LandStadtKreis=="Dortmund (L)" | LandStadtKreis=="Dortmund (S)"
replace LandStadtKreis="Düsseldorf" if LandStadtKreis=="Düsseldorf (L)" | LandStadtKreis=="Düsseldorf (S)"
replace LandStadtKreis="Essen" if LandStadtKreis=="Essen (L)" | LandStadtKreis=="Essen (S)"
replace LandStadtKreis="Hagen" if LandStadtKreis=="Hagen (L)" | LandStadtKreis=="Hagen (S)"
replace LandStadtKreis="Hörde" if LandStadtKreis=="Hörde (L)" | LandStadtKreis=="Hörde (S)"
replace LandStadtKreis="Herford" if LandStadtKreis=="Herford (L)" | LandStadtKreis=="Herford (S)"
replace LandStadtKreis="Koblenz" if LandStadtKreis=="Koblenz (L)" | LandStadtKreis=="Koblenz (S)"
replace LandStadtKreis="Mülheim (Ruhr)" if LandStadtKreis=="Mülheim an der Ruhr" 
replace LandStadtKreis="Münster" if LandStadtKreis=="Münster (L)" | LandStadtKreis=="Münster (S)"
replace LandStadtKreis="Recklinghausen" if LandStadtKreis=="Recklinghausen (S)" | LandStadtKreis=="Recklinghausen (L)"
replace LandStadtKreis="Saarbrücken" if LandStadtKreis=="Saarbrücken (S)" | LandStadtKreis=="Saarbrücken (L)"
replace LandStadtKreis="Solingen" if LandStadtKreis=="Solingen (S)" | LandStadtKreis=="Solingen (L)"
replace LandStadtKreis="Trier" if LandStadtKreis=="Trier (S)" | LandStadtKreis=="Trier (L)"
replace LandStadtKreis="Koblenz" if LandStadtKreis=="Koblenz (L)"
replace LandStadtKreis="Hamm" if LandStadtKreis=="Hamm (S)" | LandStadtKreis=="Hamm (L)"
replace LandStadtKreis="Krefeld" if LandStadtKreis=="Krefeld (S)" | LandStadtKreis=="Krefeld (L)"
replace LandStadtKreis="Iserlohn" if LandStadtKreis=="Iserlohn (S)"  | LandStadtKreis=="Iserlohn (L)"
replace LandStadtKreis="Mülheim am Rhein" if LandStadtKreis=="Mülheim (Rhein) (L)" | LandStadtKreis=="Mülheim (Rhein) (S)"
replace LandStadtKreis="Gelsenkirchen" if LandStadtKreis=="Gelsenkirchen (L)"

merge m:m LandStadtKreis using "counties cst_k id prussia.dta"
/*******************************************************************
    Result                           # of obs.
    -----------------------------------------
    not matched                           773
        from master                       278  (_merge==1)
        from using                        495  (_merge==2)

    matched                               415  (_merge==3)
    -----------------------------------------
	
_merge==2 are outside of Rhineland and Westphalia. Those are dropped later in the code.
I coded the observations in _merge==1 by hand.
********************************************************************/

** manually code Kuehne_ID
replace Kuehne_ID=282 if LandStadtKreis=="Aachen-Land"
replace Kuehne_ID=202 if LandStadtKreis=="Ahaus"
replace Kuehne_ID=205 if LandStadtKreis=="Beckum"
replace Kuehne_ID=276 if LandStadtKreis=="Bitburg"
replace Kuehne_ID=251 if LandStadtKreis=="Bonn"
replace Kuehne_ID=222 if LandStadtKreis=="Brilon"
replace Kuehne_ID=208 if LandStadtKreis=="Büren"
replace Kuehne_ID=274 if LandStadtKreis=="Cochem"
replace Kuehne_ID=203 if LandStadtKreis=="Coesfeld"

replace Kuehne_ID=284 if LandStadtKreis=="Erkelenz"
replace Kuehne_ID=250 if LandStadtKreis=="Euskirchen"
replace Kuehne_ID=269 if LandStadtKreis=="Grevenbroich"
replace Kuehne_ID=284 if LandStadtKreis=="Heinsberg"

replace Kuehne_ID=214 if LandStadtKreis=="Hörde"
replace Kuehne_ID=212 if LandStadtKreis=="Iserlohn"
replace Kuehne_ID=283 if LandStadtKreis=="Jülich"
replace Kuehne_ID=206 if LandStadtKreis=="Lübbecke"
replace Kuehne_ID=281 if LandStadtKreis=="Malmedy"
replace Kuehne_ID=211 if LandStadtKreis=="Meschede"
replace Kuehne_ID=281 if LandStadtKreis=="Montjoie"

replace Kuehne_ID=258 if LandStadtKreis=="Mülheim (Ruhr)"
replace Kuehne_ID=258 if LandStadtKreis=="Oberhausen"
replace Kuehne_ID=204 if LandStadtKreis=="Recklinghausen"
replace Kuehne_ID=213 if LandStadtKreis=="Schwelm"
replace Kuehne_ID=210 if LandStadtKreis=="Siegen"
replace Kuehne_ID=221 if LandStadtKreis=="Soest"

replace Kuehne_ID=272 if LandStadtKreis=="St. Goar"
replace Kuehne_ID=209 if LandStadtKreis=="Warburg"
replace Kuehne_ID=205 if LandStadtKreis=="Warendorf"

** These ones I related myself. 
replace Kuehne_ID=214 if LandStadtKreis=="Gelsenkirchen"    // coded into Bochum 
replace Kuehne_ID=214 if LandStadtKreis=="Hattingen"        // coded into Bochum 
replace Kuehne_ID=207 if LandStadtKreis=="Halle"            // this is the Halle in Minden 
replace Kuehne_ID=258 if LandStadtKreis=="Dinslaken"        // coded into Duisburg -- based on Ortsteil
replace Kuehne_ID=258 if LandStadtKreis=="Hamborn"          // coded into Duisburg -- based on Ortsteil
replace Kuehne_ID=214 if LandStadtKreis=="Herne"            // coded into Bochum -- based on Ortsteil
replace Kuehne_ID=268 if LandStadtKreis=="Mönchengladbach"  // coded into Gladbach 

** Now code on the variable Ort. Those are observations that were not matched.
** Those that I could not find are located outside of the Rhineland and Westphalia and were dropped later.
replace  Kuehne_ID=. if Ort=="Bad Ems" 
replace  Kuehne_ID=. if Ort=="Bad Salzuflen" 
replace  Kuehne_ID=. if Ort=="Barntrup" 
replace  Kuehne_ID=. if Ort=="Bingen" 
replace  Kuehne_ID=. if Ort=="Blomberg" 
replace  Kuehne_ID=. if Ort=="Detmold" 
replace  Kuehne_ID=. if Ort=="Gau Algesheim" 
replace  Kuehne_ID=247 if Ort=="Hachenburg" 
replace  Kuehne_ID=240 if Ort=="Homburg" 
replace  Kuehne_ID=. if Ort=="Horn-Bad Meinberg" 
replace  Kuehne_ID=. if Ort=="Höhr-Grenzhausen" 
replace  Kuehne_ID=. if Ort=="Idar-Oberstein" 
replace  Kuehne_ID=. if Ort=="Lage" 
replace  Kuehne_ID=. if Ort=="Lahnstein" 
replace  Kuehne_ID=. if Ort=="Lemgo" 
replace  Kuehne_ID=. if Ort=="Lügde" 
replace  Kuehne_ID=. if Ort=="Mainz" 
replace  Kuehne_ID=. if Ort=="Oerlinghausen" 
replace  Kuehne_ID=. if Ort=="Ransbach" 
replace  Kuehne_ID=. if Ort=="Schieder-Schwalenberg" 
replace  Kuehne_ID=. if Ort=="Schlangen"
replace  Kuehne_ID=247 if Ort=="Selters"
replace  Kuehne_ID=. if Ort=="Worms"


drop if Kuehne_ID>77 & Kuehne_ID<91   // Posen
drop if Kuehne_ID>91 & Kuehne_ID<125  // Schlesien
drop if Kuehne_ID>145 & Kuehne_ID<165 // Schleswig-Holstein
drop if Kuehne_ID>164 & Kuehne_ID<201 // Hannover
drop if Kuehne_ID>222 & Kuehne_ID<249 // Hesse-Nasau

drop if Pr=="LI"  // Lippe; not a part of the sample
drop if Pr=="RH"  // Rhineland Pfalz
drop if Pr=="BI"  // Idar-Oberstein in Rhineland Pfalz; not a part of the sample
drop if Pr=="HN"  // Hessen; not a part of the sample

gen count=1 /* this variable will be used to count the number of clubs */

replace Kuehne_ID=209 if LandStadtKreis=="Höxter" & Ort=="Lügde"
drop if GrJ==. /* this drops all the observations in _merge==2*/
drop _merge
 
save "schuetzvereine_managed.dta", replace

** now calculae by year
foreach x of numlist 1848 1851 1854 1857 1860 1861 1862 1865 1866 1869 1872{
use "schuetzvereine_managed.dta", clear
keep if GrJ<=`x'
collapse (count) count , by(Kuehne_ID)
gen year=`x'
rename count schutzverein
label var schutzverein "before `x': Schutzverein number"
save "schuetzverein before `x'.dta", replace
}

use "schuetzverein before 1848.dta", clear
append using "schuetzverein before 1851.dta"
append using "schuetzverein before 1854.dta"
append using "schuetzverein before 1857.dta"
append using "schuetzverein before 1860.dta"
append using "schuetzverein before 1861.dta"
append using "schuetzverein before 1862.dta"
append using "schuetzverein before 1865.dta"
append using "schuetzverein before 1866.dta"
append using "schuetzverein before 1869.dta"
append using "schuetzverein before 1872.dta"

replace year=year+1

** transform the rifle clubs variable
gen sv_l=ln(schutzverein)

merge m:m Kuehne_ID year using "state long.dta"
drop if _merge==2 // those districts are not in Rhineland and Westphalia
drop _merge
save "Rifle clubs.dta", replace

